# -*- coding: latin-1 -*-
import unittest
from ventas.models import *
from productos.models import Producto
from contactos.models import Contacto
from cuenta_corriente.models import *
from django.test.client import Client
from datetime import *


class SimpleTest(unittest.TestCase):
    #fixtures = ['/fixtures/initial_data.json',]
    def setUp(self):
        # Every test needs a client.
        self.client = Client()

    def test_view(self):
	response = self.client.get('/gestion/admin/ventas/venta/')
	#response = self.client.post('/admin/login/', {'username': 'gonzalo', 'password': 'Flecmaf77'})
	response = self.client.login(username='gonzalo', password='Flecmaf77')
	#print response
        # Check that the respose is 200 OK.
       # self.failUnlessEqual(response, True)
    def test_sacar_moneda(self):
	self.failUnlessEqual(sacar_moneda("$ 2.5"),2.5)
	self.failIfEqual(sacar_moneda("$ 2.2"),2.5)
	self.failUnlessEqual(sacar_moneda("u$s 2.5"),2.5)
	self.failIfEqual(sacar_moneda("u$s 2.2"),2.5)


class ItemTestCase(unittest.TestCase):
    fixtures = ['initial_data.json',]
    def setUp(self):
	    
	self.contacto= Cliente.objects.get(id=1)
        self.venta = Venta.objects.create(neto= 7922, iva= 1663.62,remito= "234223", cotizacion= 1.0, fecha= datetime.today().date(), comprobante= "232423",cliente=self.contacto, pagado= 300, bruto= 7922, saldo= 9285.62, cuit= "20312177529", efectivo= 100.0, total= 9585.62,  domicilio= "pehuajo 1459")
	self.produc= Producto.objects.get(id=1)
	self.item = Item.objects.create(orden_fabricacion="234",cantidad= 34.0,producto= self.produc,venta= self.venta,unidad_medida= "kilo",precio_unitario= "$ 233.0",importe= "$ 7922.0") 
	
    def testCreating(self):
	self.failUnlessEqual(self.item.precio_unitario_en_pesos(),233.0)
	self.failIfEqual(self.item.precio_unitario_en_pesos(),243.0)
	
    def testClient(self):
	
	recibo = Recibo(contacto=self.contacto,importe=500,total=500,pagado=500,fecha=datetime.today(),saldo=0)
	recibo.save()
        irec = ItemRecibo(concepto=self.venta,fecha=datetime.today().strftime("%d/%m/%Y"),saldo=self.venta.get_saldo(),importe=500,recibo= recibo)
	irec.save()
	
	self.failUnlessEqual(self.contacto.saldo(),8785.62)
	
	venta2 = Venta(neto= 7922, iva= 1663.62,remito= "23422", cotizacion= 1.0, fecha= datetime.today().date(), comprobante= "23242",cliente=self.contacto, pagado= 300, bruto= 7922, saldo= 500.62, cuit= "20312177529", efectivo= 0, total= 9585.62,  domicilio= "pehuajo 1459",anular=False)
	venta2.save()
	
	
	
	
	produc = Producto.objects.get(id=1)
	item2 = Item.objects.create(orden_fabricacion="224",cantidad= 34.0,producto= produc,venta= venta2,unidad_medida= "kilo",precio_unitario= "$ 233.0",importe= "$ 7922.0") 
	item2.save()
	print self.contacto.saldo()
	self.failIfEqual(self.contacto.saldo(),8785.62)
	
	
	venta2 = Venta(neto= 7922, iva= 1663.62,remito= "232", cotizacion= 1.0, fecha= datetime.today().date(), comprobante= "242",cliente=self.contacto, pagado= 300, bruto= 7922, saldo= 500.62, cuit= "20312177529", efectivo= 0, total= 9585.62,  domicilio= "pehuajo 1459",anular=True)
	venta2.save()
	
	
	
	
	produc = Producto.objects.get(id=1)
	item2 = Item.objects.create(orden_fabricacion="224",cantidad= 34.0,producto= produc,venta= venta2,unidad_medida= "kilo",precio_unitario= "$ 233.0",importe= "$ 7922.0") 
	item2.save()
	
	
	self.failUnlessAlmostEqual(self.contacto.saldo(),9286.24)